package com.mastercard.assets.web.struts.actions;

//import com.mastercard.assets.jpa.TblMaterial;
import com.mastercard.assets.web.struts.forms.FormasAgregarForm;
import com.mastercard.assets.web.struts.forms.FormasForm;
import com.mastercard.assets.web.util.to.UserLogin;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class MaterialesIndexIn extends Action {
    public ActionForward execute( 
            ActionMapping mapping ,
            ActionForm form ,
            HttpServletRequest request ,
            HttpServletResponse response )
            throws
            IOException ,
            ServletException
    {
        HttpSession session = request.getSession( ) ;
		
		// en caos de null
		if( session == null )
			return mapping.findForward( "noLogin" ) ;
		
		// toma el userLogin
		UserLogin user = ( UserLogin ) session.getAttribute( "UserLogin" ) ;
		
		// en caso de null
		if( user == null )
			return mapping.findForward( "noLogin" ) ;
                
                int role = user.getActualRoleId( ) ;
		
		if( role != 2 )
			return mapping.findForward( "RoleInvalid" ) ;
		
		// toma el form
		FormasForm f = ( FormasForm ) form ;
                                
		
		// en caso de null
		if( f == null )
			return mapping.findForward( "SourceInvalid" ) ;
                
                // toma los datos
                //forma = a material
		int cveForma = f.getCveForma( ) ;
                int cveAsset = f.getCveAsset( ) ;                
		int operation = f.getOperacion( ) ;
		
		System.out.println( "MaterialesIndexIn.java: operation - " + operation + " Asset - " + cveAsset + " Material - " + cveForma + " ::::::: " ) ;
		
		//TblMaterial material = null ;
                
                // revisa operacion
		switch( operation )
		{
			// en caso de agregar Material
			case 1 :
                                request.setAttribute( "Asset" , cveAsset ) ;
                                return mapping.findForward( "AddMaterial" ) ;                                                            
//			// en caso de eliminar forma
//			case 2 :
//				
//				// levanta la forma
//				forma = MasterCardDAO.findFormaById( cveForma ) ;
//				
//				FormasForm formasForm = new FormasForm( ) ;
//				
//				formasForm.setCveForma( cveForma ) ;
//				
//				request.setAttribute( "FormasForm" , formasForm ) ;
//				request.setAttribute( "Forma" , forma ) ;
//				
//				return mapping.findForward( "RemoveForma" ) ;
//				
//			// en caso de editar forma
//			case 3 :
//				
//				// levanta la forma
//				forma = MasterCardDAO.findFormaById( cveForma ) ;
//				
//				// lo coloca en el form adecuado
//				FormasEditarForm formaEditar = new FormasEditarForm( ) ;
//				
//				formaEditar.setCveForma( forma.getCveForma( ) ) ;
//				formaEditar.setDescripcion( forma.getDescripcion( ) ) ;
//				formaEditar.setNombre( forma.getNombre( ) ) ;
//				formaEditar.setArchivoFormaName( forma.getArchivoForma( ) ) ;
//				
//				
//				if( MCUtil.getFormaJSPFilePath( forma.getCveForma( ) ) == null )
//					// en caso de que exista guarda un 1, sino un 0
//					formaEditar.setExistFile( 0 ) ;
//				else
//					formaEditar.setExistFile( 1 ) ;
//				
//				List< TblFormaSalida > salidas = new ArrayList< TblFormaSalida >( ) ;
//				
//				List< TblFormaSalida > salidasA = forma.getTblFormaSalidas( ) ;
//				
//				for( TblFormaSalida sal : salidasA )
//				{
//					// en cao de activa
//					if( sal.getStatus( ) == 1 )
//						salidas.add( sal ) ;
//				}
//				
//				formaEditar.setFormaSalidas( salidas ) ;
//				
//				System.out.println( "FormasIndexIn.java: nombre - " + formaEditar.getNombre( ) ) ;
//				
//				request.setAttribute( "FormasEditarForm" , formaEditar ) ;
//				
//				return mapping.findForward( "EditForma" ) ;
				
			// cualquier otro caso
			default :
		}
                
                return mapping.findForward( "success" ) ;
        
    }
}
